Internet traffic is increasing dramatically with increased demand for bandwidth intensive IT applications such as streaming video, on-line gaming, video over internet protocol (IP), and others. In an Internet communication environment, the primary role of a router (or a switch) is to direct communication packets received from a source towards their final destination. In a typical router or a switch, communication packets from one port may be switched to another port based on information extracted from the incoming communication packet. To accomplish this, the router must decide for each incoming communication packet where to send it next. As a result, routers and switches configured to handle communication packets may be required to perform fast lookup of tables or databases at wire-speed based on a destination label in the incoming communication packet. For example, in a worst case scenario for a 40G Ethernet traffic rate, there may be approximately 62.5 million packets transaction per second and for a 100G Ethernet traffic rate, there may be approximately 156 million packets transaction per second.
Delays and inefficiencies in looking up labels/information from an incoming communication packet may lead to excessive queuing of the communication packets and may eventually lead to the router becoming a network bottleneck. Many routers today may find it challenging to scale to compute requirements to achieve lookup throughput in the order of 100-200 million searches per second. Adding to the challenge are factors such as, variable width of the lookup label and the variable size of the lookup database, which may vary depending on the application.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.